/*
aksParamsB
source href: https://jrsecstatic.jdpay.com/jr-sec-dev-static/summer-cryptico-h5.min.js

npm i axios
npm i sync-request
npm i node-jsencrypt
 */
const axios = require('axios');
// RSAKey
// const {JSEncrypt} = require('node-jsencrypt');
const JSEncrypt= require('node-jsencrypt');


window = global;
var fucker = void 0;
(function (A) {
        function e(e) {
            for (var n, r, i = e[0], g = e[1], o = e[2], c = 0, C = []; c < i.length; c++)
                r = i[c],
                Object.prototype.hasOwnProperty.call(a, r) && a[r] && C.push(a[r][0]),
                    a[r] = 0;
            for (n in g)
                Object.prototype.hasOwnProperty.call(g, n) && (A[n] = g[n]);
            I && I(e);
            while (C.length)
                C.shift()();
            return s.push.apply(s, o || []),
                t()
        }

        function t() {
            for (var A, e = 0; e < s.length; e++) {
                for (var t = s[e], n = !0, r = 1; r < t.length; r++) {
                    var i = t[r];
                    0 !== a[i] && (n = !1)
                }
                n && (s.splice(e--, 1),
                    A = g(g.s = t[0]))
            }
            return A
        }

        var n = {}
            , r = {
            index: 0
        }
            , a = {
            index: 0
        }
            , s = [];

        function i(A) {
            return g.p + "js/" + ({}[A] || A) + ".js"
        }

        function g(e) {
            // console.log('package', e)
            if (n[e])
                return n[e].exports;
            var t = n[e] = {
                i: e,
                l: !1,
                exports: {}
            };
            return A[e].call(t.exports, t, t.exports, g),
                t.l = !0,
                t.exports
        }

        g.e = function (A) {
            var e = []
                , t = {
                "chunk-00778ef9": 1,
                "chunk-0086bb85": 1,
                "chunk-00e585b8": 1,
                "chunk-0541bca7": 1,
                "chunk-090a96bc": 1,
                "chunk-0bf6426b": 1,
                "chunk-154c0cd6": 1,
                "chunk-1d57ef98": 1,
                "chunk-1ea9c550": 1,
                "chunk-23ac1312": 1,
                "chunk-23c4fe71": 1,
                "chunk-28f4d9bc": 1,
                "chunk-292fc281": 1,
                "chunk-33dc4c73": 1,
                "chunk-36ad665a": 1,
                "chunk-3a8e87b2": 1,
                "chunk-564fa90c": 1,
                "chunk-5949a5f1": 1,
                "chunk-59b9b132": 1,
                "chunk-6038e544": 1,
                "chunk-6a6e0a4d": 1,
                "chunk-6ced383c": 1,
                "chunk-6dc29283": 1,
                "chunk-70bb8e22": 1,
                "chunk-7d13897c": 1,
                "chunk-84f3bc8a": 1,
                "chunk-9082c6aa": 1,
                "chunk-90be71c6": 1,
                "chunk-b5765412": 1,
                "chunk-b686d13c": 1,
                "chunk-b8947556": 1,
                "chunk-c12273a8": 1,
                "chunk-f4935faa": 1
            };
            r[A] ? e.push(r[A]) : 0 !== r[A] && t[A] && e.push(r[A] = new Promise((function (e, t) {
                    for (var n = "css/" + ({}[A] || A) + ".css", a = g.p + n, s = document.getElementsByTagName("link"), i = 0; i < s.length; i++) {
                        var o = s[i]
                            , c = o.getAttribute("data-href") || o.getAttribute("href");
                        if ("stylesheet" === o.rel && (c === n || c === a))
                            return e()
                    }
                    var C = document.getElementsByTagName("style");
                    for (i = 0; i < C.length; i++) {
                        o = C[i],
                            c = o.getAttribute("data-href");
                        if (c === n || c === a)
                            return e()
                    }
                    var I = document.createElement("link");
                    I.rel = "stylesheet",
                        I.type = "text/css",
                        I.onload = e,
                        I.onerror = function (e) {
                            var n = e && e.target && e.target.src || a
                                , s = new Error("Loading CSS chunk " + A + " failed.\n(" + n + ")");
                            s.code = "CSS_CHUNK_LOAD_FAILED",
                                s.request = n,
                                delete r[A],
                                I.parentNode.removeChild(I),
                                t(s)
                        }
                        ,
                        I.href = a;
                    var E = document.getElementsByTagName("head")[0];
                    E.appendChild(I)
                }
            )).then((function () {
                    r[A] = 0
                }
            )));
            var n = a[A];
            if (0 !== n)
                if (n)
                    e.push(n[2]);
                else {
                    var s = new Promise((function (e, t) {
                            n = a[A] = [e, t]
                        }
                    ));
                    e.push(n[2] = s);
                    var o, c = document.createElement("script");
                    c.charset = "utf-8",
                        c.timeout = 120,
                    g.nc && c.setAttribute("nonce", g.nc),
                        c.src = i(A);
                    var C = new Error;
                    o = function (e) {
                        c.onerror = c.onload = null,
                            clearTimeout(I);
                        var t = a[A];
                        if (0 !== t) {
                            if (t) {
                                var n = e && ("load" === e.type ? "missing" : e.type)
                                    , r = e && e.target && e.target.src;
                                C.message = "Loading chunk " + A + " failed.\n(" + n + ": " + r + ")",
                                    C.name = "ChunkLoadError",
                                    C.type = n,
                                    C.request = r,
                                    t[1](C)
                            }
                            a[A] = void 0
                        }
                    }
                    ;
                    var I = setTimeout((function () {
                            o({
                                type: "timeout",
                                target: c
                            })
                        }
                    ), 12e4);
                    c.onerror = c.onload = o,
                        document.head.appendChild(c)
                }
            return Promise.all(e)
        }
            ,
            g.m = A,
            g.c = n,
            g.d = function (A, e, t) {
                g.o(A, e) || Object.defineProperty(A, e, {
                    enumerable: !0,
                    get: t
                })
            }
            ,
            g.r = function (A) {
                "undefined" !== typeof Symbol && Symbol.toStringTag && Object.defineProperty(A, Symbol.toStringTag, {
                    value: "Module"
                }),
                    Object.defineProperty(A, "__esModule", {
                        value: !0
                    })
            }
            ,
            g.t = function (A, e) {
                if (1 & e && (A = g(A)),
                8 & e)
                    return A;
                if (4 & e && "object" === typeof A && A && A.__esModule)
                    return A;
                var t = Object.create(null);
                if (g.r(t),
                    Object.defineProperty(t, "default", {
                        enumerable: !0,
                        value: A
                    }),
                2 & e && "string" != typeof A)
                    for (var n in A)
                        g.d(t, n, function (e) {
                            return A[e]
                        }
                            .bind(null, n));
                return t
            }
            ,
            g.n = function (A) {
                var e = A && A.__esModule ? function () {
                            return A["default"]
                        }
                        : function () {
                            return A
                        }
                ;
                return g.d(e, "a", e),
                    e
            }
            ,
            g.o = function (A, e) {
                return Object.prototype.hasOwnProperty.call(A, e)
            }
            ,
            g.p = "/common/gikam/",
            g.oe = function (A) {
                throw console.error(A),
                    A
            }
        ;
        var o = window["webpackJsonp"] = window["webpackJsonp"] || []
            , c = o.push.bind(o);
        o.push = e,
            o = o.slice();
        for (var C = 0; C < o.length; C++)
            e(o[C]);
        var I = c;
        s.push([4, "chunk-vendors"]),
            t();
        fucker = g;
    }
)(
    {
        686: function (t, e, r) {
            function i(t) {
                if (o[t])
                    return o[t].exports;
                var e = o[t] = {
                    i: t,
                    l: !1,
                    exports: {}
                };
                return n[t].call(e.exports, e, e.exports, i),
                    e.l = !0,
                    e.exports
            }

            var n, o;
            t.exports = (o = {},
                i.m = n = [function (t, e) {
                    t.exports = r(77)
                }
                    , function (t, e, r) {
                        "use strict";

                        function i(t, e) {
                            for (var r = [], i = ~~(e / 8), n = e % 8, o = 0, s = t.length; o < s; o++)
                                r[o] = (t[(o + i) % s] << n & 255) + (t[(o + i + 1) % s] >>> 8 - n & 255);
                            return r
                        }

                        function n(t, e) {
                            for (var r = [], i = t.length - 1; 0 <= i; i--)
                                r[i] = 255 & (t[i] ^ e[i]);
                            return r
                        }

                        function o(t, e) {
                            for (var r = [], i = t.length - 1; 0 <= i; i--)
                                r[i] = t[i] & e[i] & 255;
                            return r
                        }

                        function s(t, e) {
                            for (var r = [], i = t.length - 1; 0 <= i; i--)
                                r[i] = 255 & (t[i] | e[i]);
                            return r
                        }

                        function h(t, e) {
                            for (var r = [], i = 0, n = t.length - 1; 0 <= n; n--) {
                                var o = t[n] + e[n] + i;
                                i = 255 < o ? 1 : 0,
                                    r[n] = 255 & o
                            }
                            return r
                        }

                        function u(t, e, r, i) {
                            return 0 <= i && i <= 15 ? n(n(t, e), r) : s(o(t, e), o(function (t) {
                                for (var e = [], r = t.length - 1; 0 <= r; r--)
                                    e[r] = 255 & ~t[r];
                                return e
                            }(t), r))
                        }

                        function a(t, e) {
                            for (var r = [], a = [], c = 0; c < 16; c++) {
                                var f = 4 * c;
                                r.push(e.slice(f, 4 + f))
                            }
                            for (var p, l = 16; l < 68; l++)
                                r.push(n(n((p = n(n(r[l - 16], r[l - 9]), i(r[l - 3], 15)),
                                    n(n(p, i(p, 15)), i(p, 23))), i(r[l - 13], 7)), r[l - 6]));
                            for (var y = 0; y < 64; y++)
                                a.push(n(r[y], r[y + 4]));
                            for (var d, m, v = [121, 204, 69, 25], g = [122, 135, 157, 138], b = t.slice(0, 4), T = t.slice(4, 8), w = t.slice(8, 12), F = t.slice(12, 16), S = t.slice(16, 20), x = t.slice(20, 24), B = t.slice(24, 28), D = t.slice(28, 32), E = void 0, A = 0; A < 64; A++) {
                                var I = 0 <= A && A <= 15 ? v : g
                                    , q = n(E = i(h(h(i(b, 12), S), i(I, A)), 7), i(b, 12))
                                    , R = h(h(h((d = b,
                                    m = T,
                                    R = w,
                                    0 <= (I = A) && I <= 15 ? n(n(d, m), R) : s(s(o(d, m), o(d, R)), o(m, R))), F), q), a[A]);
                                q = h(h(h(u(S, x, B, A), D), E), r[A]),
                                    F = w,
                                    w = i(T, 9),
                                    T = b,
                                    b = R,
                                    D = B,
                                    B = i(x, 19),
                                    x = S,
                                    S = n(n(q = q, i(q, 9)), i(q, 17))
                            }
                            return n([].concat(b, T, w, F, S, x, B, D), t)
                        }

                        t.exports = function (t) {
                            for (var e = 448 <= (e = (h = 8 * t.length) % 512) ? 512 - e % 448 - 1 : 448 - e - 1, r = new Array((e - 7) / 8), i = 0, n = r.length; i < n; i++)
                                r[i] = 0;
                            for (var o, s = [], h = h.toString(2), u = 7; 0 <= u; u--)
                                8 < h.length ? (o = h.length - 8,
                                    s[u] = parseInt(h.substr(o), 2),
                                    h = h.substr(0, o)) : 0 < h.length ? (s[u] = parseInt(h, 2),
                                    h = "") : s[u] = 0;
                            for (var c = [].concat(t, [128], r, s), f = c.length / 64, p = [115, 128, 22, 111, 73, 20, 178, 185, 23, 36, 66, 215, 218, 138, 6, 0, 169, 111, 48, 188, 22, 49, 56, 170, 227, 141, 238, 77, 176, 251, 14, 78], l = 0; l < f; l++) {
                                var y = 64 * l;
                                p = a(p, c.slice(y, 64 + y))
                            }
                            return p
                        }
                    }
                    , function (t, e, r) {
                        "use strict";
                        t.exports = {
                            sm2: r(3),
                            sm3: r(7),
                            sm4: r(8)
                        }
                    }
                    , function (t, e, r) {
                        "use strict";
                        var i = r(0).BigInteger
                            , n = r(4)
                            , o = n.encodeDer
                            , s = n.decodeDer
                            , h = r(5)
                            , u = r(1)
                            , a = (r = h.generateEcparam()).G
                            , c = r.curve
                            , f = r.n;

                        function p(t, e, r) {
                            var i = h.utf8ToHex(i = 2 < arguments.length && void 0 !== r ? r : "1234567812345678")
                                , n = h.leftPad(a.curve.a.toBigInteger().toRadix(16), 64)
                                , o = h.leftPad(a.curve.b.toBigInteger().toRadix(16), 64)
                                , s = h.leftPad(a.getX().toBigInteger().toRadix(16), 64)
                                , c = h.leftPad(a.getY().toBigInteger().toRadix(16), 64);
                            return r = (e = 128 < e.length ? e.substr(2, 128) : e).substr(0, 64),
                                e = e.substr(64, 64),
                                e = h.hexToArray(i + n + o + s + c + r + e),
                                i = 4 * i.length,
                                e.unshift(255 & i),
                                e.unshift(i >> 8 & 255),
                                e = u(e),
                                h.arrayToHex(u(e.concat(h.hexToArray(t))))
                        }

                        function l() {
                            var t = h.generateKeyPairHex()
                                , e = c.decodePointHex(t.publicKey);
                            return t.k = new i(t.privateKey, 16),
                                t.x1 = e.getX().toBigInteger(),
                                t
                        }

                        t.exports = {
                            generateKeyPairHex: h.generateKeyPairHex,
                            doEncrypt: function (t, e) {
                                var r = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : 1;
                                t = h.hexToArray(h.utf8ToHex(t)),
                                    e = h.getGlobalCurve().decodePointHex(e);
                                var n = h.generateKeyPairHex()
                                    , o = new i(n.privateKey, 16)
                                    , s = n.publicKey;

                                function a() {
                                    p = u([].concat(l, [c >> 24 & 255, c >> 16 & 255, c >> 8 & 255, 255 & c])),
                                        c++,
                                        f = 0
                                }

                                128 < s.length && (s = s.substr(s.length - 128)),
                                    n = e.multiply(o),
                                    e = h.hexToArray(h.leftPad(n.getX().toBigInteger().toRadix(16), 64)),
                                    o = h.hexToArray(h.leftPad(n.getY().toBigInteger().toRadix(16), 64)),
                                    n = h.arrayToHex(u([].concat(e, t, o)));
                                var c = 1
                                    , f = 0
                                    , p = []
                                    , l = [].concat(e, o);
                                a();
                                for (var y = 0, d = t.length; y < d; y++)
                                    f === p.length && a(),
                                        t[y] ^= 255 & p[f++];
                                return o = h.arrayToHex(t),
                                    0 === r ? s + o + n : s + n + o
                            },
                            doDecrypt: function (t, e) {
                                var r = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : 1;
                                e = new i(e, 16);
                                var n = t.substr(128, 64)
                                    , o = t.substr(192);

                                function s() {
                                    p = u([].concat(l, [c >> 24 & 255, c >> 16 & 255, c >> 8 & 255, 255 & c])),
                                        c++,
                                        f = 0
                                }

                                0 === r && (n = t.substr(t.length - 64),
                                    o = t.substr(128, t.length - 128 - 64));
                                var a = h.hexToArray(o)
                                    , c = (t = h.getGlobalCurve().decodePointHex("04" + t.substr(0, 128)).multiply(e),
                                    e = h.hexToArray(h.leftPad(t.getX().toBigInteger().toRadix(16), 64)),
                                    t = h.hexToArray(h.leftPad(t.getY().toBigInteger().toRadix(16), 64)),
                                    1)
                                    , f = 0
                                    , p = []
                                    , l = [].concat(e, t);
                                s();
                                for (var y = 0, d = a.length; y < d; y++)
                                    f === p.length && s(),
                                        a[y] ^= 255 & p[f++];
                                return h.arrayToHex(u([].concat(e, a, t))) === n ? h.arrayToUtf8(a) : ""
                            },
                            doSignature: function (t, e) {
                                var r = (c = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {}).pointPool
                                    , n = c.der
                                    , s = c.hash
                                    , u = c.publicKey
                                    , c = c.userId;
                                t = "string" == typeof t ? h.utf8ToHex(t) : h.arrayToHex(t),
                                s && (t = p(t, u || (s = e,
                                    u = a.multiply(new i(s, 16)),
                                "04" + (s = h.leftPad(u.getX().toBigInteger().toString(16), 64)) + (u = h.leftPad(u.getY().toBigInteger().toString(16), 64))), c));
                                var y = new i(e, 16)
                                    , d = new i(t, 16)
                                    , m = null
                                    , v = null
                                    , g = null;
                                do {
                                    do {
                                        var b = void 0;
                                        m = (b = r && r.length ? r.pop() : l()).k,
                                            v = d.add(b.x1).mod(f)
                                    } while (v.equals(i.ZERO) || v.add(m).equals(f))
                                } while ((g = y.add(i.ONE).modInverse(f).multiply(m.subtract(v.multiply(y))).mod(f)).equals(i.ZERO));
                                return n ? o(v, g) : h.leftPad(v.toString(16), 64) + h.leftPad(g.toString(16), 64)
                            },
                            doVerifySignature: function (t, e, r) {
                                var n = (u = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : {}).der
                                    , o = u.hash
                                    , u = u.userId;
                                return t = "string" == typeof t ? h.utf8ToHex(t) : h.arrayToHex(t),
                                o && (t = p(t, r, u)),
                                    o = void 0,
                                    u = void 0,
                                    u = n ? (o = (n = s(e)).r,
                                        n.s) : (o = new i(e.substring(0, 64), 16),
                                        new i(e.substring(64), 16)),
                                    e = c.decodePointHex(r),
                                    r = new i(t, 16),
                                !(t = o.add(u).mod(f)).equals(i.ZERO) && (t = a.multiply(u).add(e.multiply(t)),
                                    t = r.add(t.getX().toBigInteger()).mod(f),
                                    o.equals(t))
                            },
                            getPoint: l,
                            verifyPublicKey: h.verifyPublicKey
                        }
                    }
                    , function (t, e, r) {
                        "use strict";

                        function i(t, e) {
                            if (!t)
                                throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                            return !e || "object" != typeof e && "function" != typeof e ? t : e
                        }

                        function n(t, e) {
                            if ("function" != typeof e && null !== e)
                                throw new TypeError("Super expression must either be null or a function, not " + typeof e);
                            t.prototype = Object.create(e && e.prototype, {
                                constructor: {
                                    value: t,
                                    enumerable: !1,
                                    writable: !0,
                                    configurable: !0
                                }
                            }),
                            e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e)
                        }

                        function o(t, e) {
                            if (!(t instanceof e))
                                throw new TypeError("Cannot call a class as a function")
                        }

                        var s = r(0).BigInteger;

                        function h() {
                            o(this, h),
                                this.tlv = null,
                                this.t = "00",
                                this.l = "00",
                                this.v = ""
                        }

                        h.prototype.getEncodedHex = function () {
                            return this.tlv || (this.v = this.getValue(),
                                this.l = this.getLength(),
                                this.tlv = this.t + this.l + this.v),
                                this.tlv
                        }
                            ,
                            h.prototype.getLength = function () {
                                var t = this.v.length / 2
                                    , e = t.toString(16);
                                return e.length % 2 == 1 && (e = "0" + e),
                                    t < 128 ? e : (128 + e.length / 2).toString(16) + e
                            }
                            ,
                            h.prototype.getValue = function () {
                                return ""
                            }
                        ;
                        var u, a = (n(c, u = r = h),
                            c.prototype.getValue = function () {
                                return this.v
                            }
                            ,
                            c);

                        function c(t) {
                            o(this, c);
                            var e = i(this, u.call(this));
                            return e.t = "02",
                            t && (e.v = function (t) {
                                if ("-" !== (e = t.toString(16))[0])
                                    e.length % 2 == 1 ? e = "0" + e : e.match(/^[0-7]/) || (e = "00" + e);
                                else {
                                    var e, r = (e = e.substr(1)).length;
                                    r % 2 == 1 ? r += 1 : e.match(/^[0-7]/) || (r += 2);
                                    for (var i = "", n = 0; n < r; n++)
                                        i += "f";
                                    e = (e = (i = new s(i, 16)).xor(t).add(s.ONE)).toString(16).replace(/^-/, "")
                                }
                                return e
                            }(t)),
                                e
                        }

                        var f, p = (n(l, f = r),
                            l.prototype.getValue = function () {
                                return this.v = this.asn1Array.map((function (t) {
                                        return t.getEncodedHex()
                                    }
                                )).join(""),
                                    this.v
                            }
                            ,
                            l);

                        function l(t) {
                            o(this, l);
                            var e = i(this, f.call(this));
                            return e.t = "30",
                                e.asn1Array = t,
                                e
                        }

                        function y(t, e) {
                            return +t[e + 2] < 8 ? 1 : 128 & +t.substr(e + 2, 2)
                        }

                        function d(t, e) {
                            var r = y(t, e);
                            return (r = t.substr(e + 2, 2 * r)) ? (+r[0] < 8 ? new s(r, 16) : new s(r.substr(2), 16)).intValue() : -1
                        }

                        function m(t, e) {
                            return e + 2 * (y(t, e) + 1)
                        }

                        t.exports = {
                            encodeDer: function (t, e) {
                                return t = new a(t),
                                    e = new a(e),
                                    new p([t, e]).getEncodedHex()
                            },
                            decodeDer: function (t) {
                                var e = m(t, 0)
                                    , r = m(t, e)
                                    , i = d(t, e);
                                return e = t.substr(r, 2 * i),
                                    r = m(t, i = r + e.length),
                                    i = d(t, i),
                                    i = t.substr(r, 2 * i),
                                    {
                                        r: new s(e, 16),
                                        s: new s(i, 16)
                                    }
                            }
                        }
                    }
                    , function (t, e, r) {
                        "use strict";
                        var i = (n = r(0)).BigInteger
                            , n = n.SecureRandom
                            , o = r(6).ECCurveFp
                            , s = new n
                            , h = (n = c()).curve
                            , u = n.G
                            , a = n.n;

                        function c() {
                            var t = new i("FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFF", 16)
                                , e = new i("FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFC", 16)
                                , r = new i("28E9FA9E9D9F5E344D5A9E4BCF6509A7F39789F515AB8F92DDBCBD414D940E93", 16);
                            return r = (e = new o(t, e, r)).decodePointHex("0432C4AE2C1F1981195F9904466A39C9948FE30BBFF2660BE1715A4589334C74C7BC3736A2F4F6779C59BDCEE36B692153D0A9877CC62A474002DF32E52139F0A0"),
                                {
                                    curve: e,
                                    G: r,
                                    n: new i("FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF7203DF6B21C6052B53BBF40939D54123", 16)
                                }
                        }

                        function f(t, e) {
                            return t.length >= e ? t : new Array(e - t.length + 1).join("0") + t
                        }

                        t.exports = {
                            getGlobalCurve: function () {
                                return h
                            },
                            generateEcparam: c,
                            generateKeyPairHex: function (t, e, r) {
                                return {
                                    privateKey: r = f((e = (t ? new i(t, e, r) : new i(a.bitLength(), s)).mod(a.subtract(i.ONE)).add(i.ONE)).toString(16), 64),
                                    publicKey: "04" + f((e = u.multiply(e)).getX().toBigInteger().toString(16), 64) + f(e.getY().toBigInteger().toString(16), 64)
                                }
                            },
                            utf8ToHex: function (t) {
                                for (var e = (t = unescape(encodeURIComponent(t))).length, r = [], i = 0; i < e; i++)
                                    r[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - i % 4 * 8;
                                for (var n = [], o = 0; o < e; o++) {
                                    var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255;
                                    n.push((s >>> 4).toString(16)),
                                        n.push((15 & s).toString(16))
                                }
                                return n.join("")
                            },
                            leftPad: f,
                            arrayToHex: function (t) {
                                return t.map((function (t) {
                                        return 1 === (t = t.toString(16)).length ? "0" + t : t
                                    }
                                )).join("")
                            },
                            arrayToUtf8: function (t) {
                                for (var e = [], r = 0, i = 0; i < 2 * t.length; i += 2)
                                    e[i >>> 3] |= parseInt(t[r], 10) << 24 - i % 8 * 4,
                                        r++;
                                try {
                                    for (var n = [], o = 0; o < t.length; o++) {
                                        var s = e[o >>> 2] >>> 24 - o % 4 * 8 & 255;
                                        n.push(String.fromCharCode(s))
                                    }
                                    return decodeURIComponent(escape(n.join("")))
                                } catch (t) {
                                    throw new Error("Malformed UTF-8 data")
                                }
                            },
                            hexToArray: function (t) {
                                for (var e = [], r = (t = (r = t.length) % 2 != 0 ? f(t, r + 1) : t).length, i = 0; i < r; i += 2)
                                    e.push(parseInt(t.substr(i, 2), 16));
                                return e
                            },
                            verifyPublicKey: function (t) {
                                var e = h.decodePointHex(t);
                                return !!e && (t = e.getX(),
                                    e.getY().square().equals(t.multiply(t.square()).add(t.multiply(h.a)).add(h.b)))
                            }
                        }
                    }
                    , function (t, e, r) {
                        "use strict";

                        function i(t, e) {
                            if (!(t instanceof e))
                                throw new TypeError("Cannot call a class as a function")
                        }

                        var n = r(0).BigInteger
                            , o = new n("3")
                            , s = (h.prototype.equals = function (t) {
                            return t === this || this.q.equals(t.q) && this.x.equals(t.x)
                        }
                            ,
                            h.prototype.toBigInteger = function () {
                                return this.x
                            }
                            ,
                            h.prototype.negate = function () {
                                return new h(this.q, this.x.negate().mod(this.q))
                            }
                            ,
                            h.prototype.add = function (t) {
                                return new h(this.q, this.x.add(t.toBigInteger()).mod(this.q))
                            }
                            ,
                            h.prototype.subtract = function (t) {
                                return new h(this.q, this.x.subtract(t.toBigInteger()).mod(this.q))
                            }
                            ,
                            h.prototype.multiply = function (t) {
                                return new h(this.q, this.x.multiply(t.toBigInteger()).mod(this.q))
                            }
                            ,
                            h.prototype.divide = function (t) {
                                return new h(this.q, this.x.multiply(t.toBigInteger().modInverse(this.q)).mod(this.q))
                            }
                            ,
                            h.prototype.square = function () {
                                return new h(this.q, this.x.square().mod(this.q))
                            }
                            ,
                            h);

                        function h(t, e) {
                            i(this, h),
                                this.x = e,
                                this.q = t
                        }

                        var u = (a.prototype.getX = function () {
                            return null === this.zinv && (this.zinv = this.z.modInverse(this.curve.q)),
                                this.curve.fromBigInteger(this.x.toBigInteger().multiply(this.zinv).mod(this.curve.q))
                        }
                            ,
                            a.prototype.getY = function () {
                                return null === this.zinv && (this.zinv = this.z.modInverse(this.curve.q)),
                                    this.curve.fromBigInteger(this.y.toBigInteger().multiply(this.zinv).mod(this.curve.q))
                            }
                            ,
                            a.prototype.equals = function (t) {
                                return t === this || (this.isInfinity() ? t.isInfinity() : t.isInfinity() ? this.isInfinity() : !!t.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(t.z)).mod(this.curve.q).equals(n.ZERO) && t.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(t.z)).mod(this.curve.q).equals(n.ZERO))
                            }
                            ,
                            a.prototype.isInfinity = function () {
                                return null === this.x && null === this.y || this.z.equals(n.ZERO) && !this.y.toBigInteger().equals(n.ZERO)
                            }
                            ,
                            a.prototype.negate = function () {
                                return new a(this.curve, this.x, this.y.negate(), this.z)
                            }
                            ,
                            a.prototype.add = function (t) {
                                if (this.isInfinity())
                                    return t;
                                if (t.isInfinity())
                                    return this;
                                var e = this.x.toBigInteger()
                                    , r = this.y.toBigInteger()
                                    , i = this.z
                                    , o = t.x.toBigInteger()
                                    , s = t.y.toBigInteger()
                                    , h = t.z
                                    , u = this.curve.q
                                    , c = e.multiply(h).mod(u);
                                return t = o.multiply(i).mod(u),
                                    e = c.subtract(t),
                                    o = r.multiply(h).mod(u),
                                    r = s.multiply(i).mod(u),
                                    s = o.subtract(r),
                                    n.ZERO.equals(e) ? n.ZERO.equals(s) ? this.twice() : this.curve.infinity : (r = c.add(t),
                                        t = i.multiply(h).mod(u),
                                        i = e.square().mod(u),
                                        h = e.multiply(i).mod(u),
                                        r = t.multiply(s.square()).subtract(r.multiply(i)).mod(u),
                                        e = e.multiply(r).mod(u),
                                        o = s.multiply(i.multiply(c).subtract(r)).subtract(o.multiply(h)).mod(u),
                                        u = h.multiply(t).mod(u),
                                        new a(this.curve, this.curve.fromBigInteger(e), this.curve.fromBigInteger(o), u))
                            }
                            ,
                            a.prototype.twice = function () {
                                if (this.isInfinity())
                                    return this;
                                if (!this.y.toBigInteger().signum())
                                    return this.curve.infinity;
                                var t = this.x.toBigInteger()
                                    , e = this.y.toBigInteger()
                                    , r = this.z
                                    , i = this.curve.q
                                    , n = this.curve.a.toBigInteger()
                                    , s = t.square().multiply(o).add(n.multiply(r.square())).mod(i)
                                    , h = e.shiftLeft(1).multiply(r).mod(i)
                                    , u = (n = (u = e.square().mod(i)).multiply(t).multiply(r).mod(i),
                                    e = h.square().mod(i),
                                    t = s.square().subtract(n.shiftLeft(3)).mod(i),
                                    r = h.multiply(t).mod(i),
                                    s.multiply(n.shiftLeft(2).subtract(t)).subtract(e.shiftLeft(1).multiply(u)).mod(i));
                                return i = h.multiply(e).mod(i),
                                    new a(this.curve, this.curve.fromBigInteger(r), this.curve.fromBigInteger(u), i)
                            }
                            ,
                            a.prototype.multiply = function (t) {
                                if (this.isInfinity())
                                    return this;
                                if (!t.signum())
                                    return this.curve.infinity;
                                for (var e = t.multiply(o), r = this.negate(), i = this, n = e.bitLength() - 2; 0 < n; n--) {
                                    i = i.twice();
                                    var s = e.testBit(n);
                                    s !== t.testBit(n) && (i = i.add(s ? this : r))
                                }
                                return i
                            }
                            ,
                            a);

                        function a(t, e, r, o) {
                            i(this, a),
                                this.curve = t,
                                this.x = e,
                                this.y = r,
                                this.z = null == o ? n.ONE : o,
                                this.zinv = null
                        }

                        function c(t, e, r) {
                            i(this, c),
                                this.q = t,
                                this.a = this.fromBigInteger(e),
                                this.b = this.fromBigInteger(r),
                                this.infinity = new u(this, null, null)
                        }

                        c.prototype.equals = function (t) {
                            return t === this || this.q.equals(t.q) && this.a.equals(t.a) && this.b.equals(t.b)
                        }
                            ,
                            c.prototype.fromBigInteger = function (t) {
                                return new s(this.q, t)
                            }
                            ,
                            c.prototype.decodePointHex = function (t) {
                                switch (parseInt(t.substr(0, 2), 16)) {
                                    case 0:
                                        return this.infinity;
                                    default:
                                        return null;
                                    case 4:
                                    case 6:
                                    case 7:
                                        var e = (t.length - 2) / 2
                                            , r = t.substr(2, e);
                                        return e = t.substr(2 + e, e),
                                            new u(this, this.fromBigInteger(new n(r, 16)), this.fromBigInteger(new n(e, 16)))
                                }
                            }
                            ,
                            r = c,
                            t.exports = {
                                ECPointFp: u,
                                ECCurveFp: r
                            }
                    }
                    , function (t, e, r) {
                        "use strict";
                        var i = r(1);
                        t.exports = function (t) {
                            return t = "string" == typeof t ? function (t) {
                                for (var e = [], r = 0, i = t.length; r < i; r++) {
                                    var n = t.charCodeAt(r);
                                    if (n <= 127)
                                        e.push(n);
                                    else if (n <= 2047)
                                        e.push(192 | n >>> 6),
                                            e.push(128 | 63 & n);
                                    else if (n <= 55295 || 57344 <= n && n <= 65535)
                                        e.push(224 | n >>> 12),
                                            e.push(128 | n >>> 6 & 63),
                                            e.push(128 | 63 & n);
                                    else {
                                        if (!(65536 <= n && n <= 1114111))
                                            throw e.push(n),
                                                new Error("input is not supported");
                                        r++,
                                            e.push(240 | n >>> 18 & 28),
                                            e.push(128 | n >>> 12 & 63),
                                            e.push(128 | n >>> 6 & 63),
                                            e.push(128 | 63 & n)
                                    }
                                }
                                return e
                            }(t) : Array.prototype.slice.call(t),
                                i(t).map((function (t) {
                                        return 1 === (t = t.toString(16)).length ? "0" + t : t
                                    }
                                )).join("")
                        }
                    }
                    , function (t, e, r) {
                        "use strict";
                        var i = [214, 144, 233, 254, 204, 225, 61, 183, 22, 182, 20, 194, 40, 251, 44, 5, 43, 103, 154, 118, 42, 190, 4, 195, 170, 68, 19, 38, 73, 134, 6, 153, 156, 66, 80, 244, 145, 239, 152, 122, 51, 84, 11, 67, 237, 207, 172, 98, 228, 179, 28, 169, 201, 8, 232, 149, 128, 223, 148, 250, 117, 143, 63, 166, 71, 7, 167, 252, 243, 115, 23, 186, 131, 89, 60, 25, 230, 133, 79, 168, 104, 107, 129, 178, 113, 100, 218, 139, 248, 235, 15, 75, 112, 86, 157, 53, 30, 36, 14, 94, 99, 88, 209, 162, 37, 34, 124, 59, 1, 33, 120, 135, 212, 0, 70, 87, 159, 211, 39, 82, 76, 54, 2, 231, 160, 196, 200, 158, 234, 191, 138, 210, 64, 199, 56, 181, 163, 247, 242, 206, 249, 97, 21, 161, 224, 174, 93, 164, 155, 52, 26, 85, 173, 147, 50, 48, 245, 140, 177, 227, 29, 246, 226, 46, 130, 102, 202, 96, 192, 41, 35, 171, 13, 83, 78, 111, 213, 219, 55, 69, 222, 253, 142, 47, 3, 255, 106, 114, 109, 108, 91, 81, 141, 27, 175, 146, 187, 221, 188, 127, 17, 217, 92, 65, 31, 16, 90, 216, 10, 193, 49, 136, 165, 205, 123, 189, 45, 116, 208, 18, 184, 229, 180, 176, 137, 105, 151, 74, 12, 150, 119, 126, 101, 185, 241, 9, 197, 110, 198, 132, 24, 240, 125, 236, 58, 220, 77, 32, 121, 238, 95, 62, 215, 203, 57, 72]
                            ,
                            n = [462357, 472066609, 943670861, 1415275113, 1886879365, 2358483617, 2830087869, 3301692121, 3773296373, 4228057617, 404694573, 876298825, 1347903077, 1819507329, 2291111581, 2762715833, 3234320085, 3705924337, 4177462797, 337322537, 808926789, 1280531041, 1752135293, 2223739545, 2695343797, 3166948049, 3638552301, 4110090761, 269950501, 741554753, 1213159005, 1684763257];

                        function o(t) {
                            for (var e = [], r = 0, i = t.length; r < i; r += 2)
                                e.push(parseInt(t.substr(r, 2), 16));
                            return e
                        }

                        function s(t, e) {
                            return t << e | t >>> 32 - e
                        }

                        function h(t) {
                            return (255 & i[t >>> 24 & 255]) << 24 | (255 & i[t >>> 16 & 255]) << 16 | (255 & i[t >>> 8 & 255]) << 8 | 255 & i[255 & t]
                        }

                        function u(t) {
                            return t ^ s(t, 2) ^ s(t, 10) ^ s(t, 18) ^ s(t, 24)
                        }

                        function a(t) {
                            return t ^ s(t, 13) ^ s(t, 23)
                        }

                        function c(t, e, r, i) {
                            i = void 0 === (c = (f = 3 < arguments.length && void 0 !== i ? i : {}).padding) ? "pkcs#5" : c;
                            var s = f.mode
                                , c = void 0 === (c = f.iv) ? [] : c
                                , f = void 0 === (f = f.output) ? "string" : f;
                            if ("cbc" === s && 16 !== (c = "string" == typeof c ? o(c) : c).length)
                                throw new Error("iv is invalid");
                            if (16 !== (e = "string" == typeof e ? o(e) : e).length)
                                throw new Error("key is invalid");
                            if (t = "string" == typeof t ? (0 !== r ? function (t) {
                                    for (var e = [], r = 0, i = t.length; r < i; r++) {
                                        var n = t.charCodeAt(r);
                                        if (n <= 127)
                                            e.push(n);
                                        else if (n <= 2047)
                                            e.push(192 | n >>> 6),
                                                e.push(128 | 63 & n);
                                        else if (n <= 55295 || 57344 <= n && n <= 65535)
                                            e.push(224 | n >>> 12),
                                                e.push(128 | n >>> 6 & 63),
                                                e.push(128 | 63 & n);
                                        else {
                                            if (!(65536 <= n && n <= 1114111))
                                                throw e.push(n),
                                                    new Error("input is not supported");
                                            r++,
                                                e.push(240 | n >>> 18 & 28),
                                                e.push(128 | n >>> 12 & 63),
                                                e.push(128 | n >>> 6 & 63),
                                                e.push(128 | 63 & n)
                                        }
                                    }
                                    return e
                                }
                                : o)(t) : [].concat(t),
                            "pkcs#5" === i && 0 !== r)
                                for (var p = 16 - t.length % 16, l = 0; l < p; l++)
                                    t.push(p);
                            var y = new Array(32);
                            !function (t, e, r) {
                                for (var i = new Array(4), o = new Array(4), s = 0; s < 4; s++)
                                    o[0] = 255 & t[0 + 4 * s],
                                        o[1] = 255 & t[1 + 4 * s],
                                        o[2] = 255 & t[2 + 4 * s],
                                        o[3] = 255 & t[3 + 4 * s],
                                        i[s] = o[0] << 24 | o[1] << 16 | o[2] << 8 | o[3];
                                i[0] ^= 2746333894,
                                    i[1] ^= 1453994832,
                                    i[2] ^= 1736282519,
                                    i[3] ^= 2993693404;
                                for (var u, c = 0; c < 32; c += 4)
                                    u = i[1] ^ i[2] ^ i[3] ^ n[c + 0],
                                        e[c + 0] = i[0] ^= a(h(u)),
                                        u = i[2] ^ i[3] ^ i[0] ^ n[c + 1],
                                        e[c + 1] = i[1] ^= a(h(u)),
                                        u = i[3] ^ i[0] ^ i[1] ^ n[c + 2],
                                        e[c + 2] = i[2] ^= a(h(u)),
                                        u = i[0] ^ i[1] ^ i[2] ^ n[c + 3],
                                        e[c + 3] = i[3] ^= a(h(u));
                                if (0 === r)
                                    for (var f, p = 0; p < 16; p++)
                                        f = e[p],
                                            e[p] = e[31 - p],
                                            e[31 - p] = f
                            }(e, y, r);
                            for (var d = [], m = c, v = t.length, g = 0; 16 <= v;) {
                                var b = t.slice(g, g + 16)
                                    , T = new Array(16);
                                if ("cbc" === s)
                                    for (var w = 0; w < 16; w++)
                                        0 !== r && (b[w] ^= m[w]);
                                !function (t, e, r) {
                                    for (var i = new Array(4), n = new Array(4), o = 0; o < 4; o++)
                                        n[0] = 255 & t[4 * o],
                                            n[1] = 255 & t[4 * o + 1],
                                            n[2] = 255 & t[4 * o + 2],
                                            n[3] = 255 & t[4 * o + 3],
                                            i[o] = n[0] << 24 | n[1] << 16 | n[2] << 8 | n[3];
                                    for (var s, a = 0; a < 32; a += 4)
                                        s = i[1] ^ i[2] ^ i[3] ^ r[a + 0],
                                            i[0] ^= u(h(s)),
                                            s = i[2] ^ i[3] ^ i[0] ^ r[a + 1],
                                            i[1] ^= u(h(s)),
                                            s = i[3] ^ i[0] ^ i[1] ^ r[a + 2],
                                            i[2] ^= u(h(s)),
                                            s = i[0] ^ i[1] ^ i[2] ^ r[a + 3],
                                            i[3] ^= u(h(s));
                                    for (var c = 0; c < 16; c += 4)
                                        e[c] = i[3 - c / 4] >>> 24 & 255,
                                            e[c + 1] = i[3 - c / 4] >>> 16 & 255,
                                            e[c + 2] = i[3 - c / 4] >>> 8 & 255,
                                            e[c + 3] = 255 & i[3 - c / 4]
                                }(b, T, y);
                                for (var F = 0; F < 16; F++)
                                    "cbc" === s && 0 === r && (T[F] ^= m[F]),
                                        d[g + F] = T[F];
                                "cbc" === s && (m = 0 !== r ? T : b),
                                    v -= 16,
                                    g += 16
                            }
                            return "pkcs#5" === i && 0 === r && (i = d[d.length - 1],
                                d.splice(d.length - i, i)),
                                "array" !== f ? 0 !== r ? d.map((function (t) {
                                        return 1 === (t = t.toString(16)).length ? "0" + t : t
                                    }
                                )).join("") : function (t) {
                                    for (var e = [], r = 0, i = t.length; r < i; r++)
                                        240 <= t[r] && t[r] <= 247 ? (e.push(String.fromCharCode(((7 & t[r]) << 18) + ((63 & t[r + 1]) << 12) + ((63 & t[r + 2]) << 6) + (63 & t[r + 3]))),
                                            r += 3) : 224 <= t[r] && t[r] <= 239 ? (e.push(String.fromCharCode(((15 & t[r]) << 12) + ((63 & t[r + 1]) << 6) + (63 & t[r + 2]))),
                                            r += 2) : 192 <= t[r] && t[r] <= 223 ? (e.push(String.fromCharCode(((31 & t[r]) << 6) + (63 & t[r + 1]))),
                                            r++) : e.push(String.fromCharCode(t[r]));
                                    return e.join("")
                                }(d) : d
                        }

                        t.exports = {
                            encrypt: function (t, e, r) {
                                return c(t, e, 1, r)
                            },
                            decrypt: function (t, e, r) {
                                return c(t, e, 0, r)
                            }
                        }
                    }
                ],
                i.c = o,
                i.d = function (t, e, r) {
                    i.o(t, e) || Object.defineProperty(t, e, {
                        enumerable: !0,
                        get: r
                    })
                }
                ,
                i.r = function (t) {
                    "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {
                        value: "Module"
                    }),
                        Object.defineProperty(t, "__esModule", {
                            value: !0
                        })
                }
                ,
                i.t = function (t, e) {
                    if (1 & e && (t = i(t)),
                    8 & e)
                        return t;
                    if (4 & e && "object" == typeof t && t && t.__esModule)
                        return t;
                    var r = Object.create(null);
                    if (i.r(r),
                        Object.defineProperty(r, "default", {
                            enumerable: !0,
                            value: t
                        }),
                    2 & e && "string" != typeof t)
                        for (var n in t)
                            i.d(r, n, function (e) {
                                return t[e]
                            }
                                .bind(null, n));
                    return r
                }
                ,
                i.n = function (t) {
                    var e = t && t.__esModule ? function () {
                                return t.default
                            }
                            : function () {
                                return t
                            }
                    ;
                    return i.d(e, "a", e),
                        e
                }
                ,
                i.o = function (t, e) {
                    return Object.prototype.hasOwnProperty.call(t, e)
                }
                ,
                i.p = "",
                i(i.s = 2))
        },
        77: function (t, e) {
            (function () {
                    function e(t, e, r) {
                        null != t && ("number" == typeof t ? this.fromNumber(t, e, r) : null == e && "string" != typeof t ? this.fromString(t, 256) : this.fromString(t, e))
                    }

                    function r() {
                        return new e(null)
                    }

                    var i = (i = "undefined" != typeof navigator) && "Microsoft Internet Explorer" == navigator.appName ? (e.prototype.am = function (t, e, r, i, n, o) {
                        for (var s = 32767 & e, h = e >> 15; 0 <= --o;) {
                            var u = 32767 & this[t]
                                , a = this[t++] >> 15
                                , c = h * u + a * s;
                            n = ((u = s * u + ((32767 & c) << 15) + r[i] + (1073741823 & n)) >>> 30) + (c >>> 15) + h * a + (n >>> 30),
                                r[i++] = 1073741823 & u
                        }
                        return n
                    }
                        ,
                        30) : i && "Netscape" != navigator.appName ? (e.prototype.am = function (t, e, r, i, n, o) {
                        for (; 0 <= --o;) {
                            var s = e * this[t++] + r[i] + n;
                            n = Math.floor(s / 67108864),
                                r[i++] = 67108863 & s
                        }
                        return n
                    }
                        ,
                        26) : (e.prototype.am = function (t, e, r, i, n, o) {
                        for (var s = 16383 & e, h = e >> 14; 0 <= --o;) {
                            var u = 16383 & this[t]
                                , a = this[t++] >> 14
                                , c = h * u + a * s;
                            n = ((u = s * u + ((16383 & c) << 14) + r[i] + n) >> 28) + (c >> 14) + h * a,
                                r[i++] = 268435455 & u
                        }
                        return n
                    }
                        ,
                        28);
                    e.prototype.DB = i,
                        e.prototype.DM = (1 << i) - 1,
                        e.prototype.DV = 1 << i,
                        e.prototype.FV = Math.pow(2, 52),
                        e.prototype.F1 = 52 - i,
                        e.prototype.F2 = 2 * i - 52;
                    for (var n = new Array, o = "0".charCodeAt(0), s = 0; s <= 9; ++s)
                        n[o++] = s;
                    for (o = "a".charCodeAt(0),
                             s = 10; s < 36; ++s)
                        n[o++] = s;
                    for (o = "A".charCodeAt(0),
                             s = 10; s < 36; ++s)
                        n[o++] = s;

                    function h(t) {
                        return "0123456789abcdefghijklmnopqrstuvwxyz".charAt(t)
                    }

                    function u(t, e) {
                        return null == (e = n[t.charCodeAt(e)]) ? -1 : e
                    }

                    function a(t) {
                        var e = r();
                        return e.fromInt(t),
                            e
                    }

                    function c(t) {
                        var e, r = 1;
                        return 0 != (e = t >>> 16) && (t = e,
                            r += 16),
                        0 != (e = t >> 8) && (t = e,
                            r += 8),
                        0 != (e = t >> 4) && (t = e,
                            r += 4),
                        0 != (e = t >> 2) && (t = e,
                            r += 2),
                        0 != (e = t >> 1) && (t = e,
                            r += 1),
                            r
                    }

                    function f(t) {
                        this.m = t
                    }

                    function p(t) {
                        this.m = t,
                            this.mp = t.invDigit(),
                            this.mpl = 32767 & this.mp,
                            this.mph = this.mp >> 15,
                            this.um = (1 << t.DB - 15) - 1,
                            this.mt2 = 2 * t.t
                    }

                    function l(t, e) {
                        return t & e
                    }

                    function y(t, e) {
                        return t | e
                    }

                    function d(t, e) {
                        return t ^ e
                    }

                    function m(t, e) {
                        return t & ~e
                    }

                    function v() {
                    }

                    function g(t) {
                        return t
                    }

                    function b(t) {
                        this.r2 = r(),
                            this.q3 = r(),
                            e.ONE.dlShiftTo(2 * t.t, this.r2),
                            this.mu = this.r2.divide(t),
                            this.m = t
                    }

                    f.prototype.convert = function (t) {
                        return t.s < 0 || 0 <= t.compareTo(this.m) ? t.mod(this.m) : t
                    }
                        ,
                        f.prototype.revert = function (t) {
                            return t
                        }
                        ,
                        f.prototype.reduce = function (t) {
                            t.divRemTo(this.m, null, t)
                        }
                        ,
                        f.prototype.mulTo = function (t, e, r) {
                            t.multiplyTo(e, r),
                                this.reduce(r)
                        }
                        ,
                        f.prototype.sqrTo = function (t, e) {
                            t.squareTo(e),
                                this.reduce(e)
                        }
                        ,
                        p.prototype.convert = function (t) {
                            var i = r();
                            return t.abs().dlShiftTo(this.m.t, i),
                                i.divRemTo(this.m, null, i),
                            t.s < 0 && 0 < i.compareTo(e.ZERO) && this.m.subTo(i, i),
                                i
                        }
                        ,
                        p.prototype.revert = function (t) {
                            var e = r();
                            return t.copyTo(e),
                                this.reduce(e),
                                e
                        }
                        ,
                        p.prototype.reduce = function (t) {
                            for (; t.t <= this.mt2;)
                                t[t.t++] = 0;
                            for (var e = 0; e < this.m.t; ++e) {
                                var r = 32767 & t[e]
                                    ,
                                    i = r * this.mpl + ((r * this.mph + (t[e] >> 15) * this.mpl & this.um) << 15) & t.DM;
                                for (t[r = e + this.m.t] += this.m.am(0, i, t, e, 0, this.m.t); t[r] >= t.DV;)
                                    t[r] -= t.DV,
                                        t[++r]++
                            }
                            t.clamp(),
                                t.drShiftTo(this.m.t, t),
                            0 <= t.compareTo(this.m) && t.subTo(this.m, t)
                        }
                        ,
                        p.prototype.mulTo = function (t, e, r) {
                            t.multiplyTo(e, r),
                                this.reduce(r)
                        }
                        ,
                        p.prototype.sqrTo = function (t, e) {
                            t.squareTo(e),
                                this.reduce(e)
                        }
                        ,
                        e.prototype.copyTo = function (t) {
                            for (var e = this.t - 1; 0 <= e; --e)
                                t[e] = this[e];
                            t.t = this.t,
                                t.s = this.s
                        }
                        ,
                        e.prototype.fromInt = function (t) {
                            this.t = 1,
                                this.s = t < 0 ? -1 : 0,
                                0 < t ? this[0] = t : t < -1 ? this[0] = t + this.DV : this.t = 0
                        }
                        ,
                        e.prototype.fromString = function (t, r) {
                            var i;
                            if (16 == r)
                                i = 4;
                            else if (8 == r)
                                i = 3;
                            else if (256 == r)
                                i = 8;
                            else if (2 == r)
                                i = 1;
                            else if (32 == r)
                                i = 5;
                            else {
                                if (4 != r)
                                    return void this.fromRadix(t, r);
                                i = 2
                            }
                            this.t = 0,
                                this.s = 0;
                            for (var n = t.length, o = !1, s = 0; 0 <= --n;) {
                                var h = 8 == i ? 255 & t[n] : u(t, n);
                                h < 0 ? "-" == t.charAt(n) && (o = !0) : (o = !1,
                                    0 == s ? this[this.t++] = h : s + i > this.DB ? (this[this.t - 1] |= (h & (1 << this.DB - s) - 1) << s,
                                        this[this.t++] = h >> this.DB - s) : this[this.t - 1] |= h << s,
                                (s += i) >= this.DB && (s -= this.DB))
                            }
                            8 == i && 0 != (128 & t[0]) && (this.s = -1,
                            0 < s && (this[this.t - 1] |= (1 << this.DB - s) - 1 << s)),
                                this.clamp(),
                            o && e.ZERO.subTo(this, this)
                        }
                        ,
                        e.prototype.clamp = function () {
                            for (var t = this.s & this.DM; 0 < this.t && this[this.t - 1] == t;)
                                --this.t
                        }
                        ,
                        e.prototype.dlShiftTo = function (t, e) {
                            for (var r = this.t - 1; 0 <= r; --r)
                                e[r + t] = this[r];
                            for (r = t - 1; 0 <= r; --r)
                                e[r] = 0;
                            e.t = this.t + t,
                                e.s = this.s
                        }
                        ,
                        e.prototype.drShiftTo = function (t, e) {
                            for (var r = t; r < this.t; ++r)
                                e[r - t] = this[r];
                            e.t = Math.max(this.t - t, 0),
                                e.s = this.s
                        }
                        ,
                        e.prototype.lShiftTo = function (t, e) {
                            for (var r = t % this.DB, i = this.DB - r, n = (1 << i) - 1, o = Math.floor(t / this.DB), s = this.s << r & this.DM, h = this.t - 1; 0 <= h; --h)
                                e[h + o + 1] = this[h] >> i | s,
                                    s = (this[h] & n) << r;
                            for (h = o - 1; 0 <= h; --h)
                                e[h] = 0;
                            e[o] = s,
                                e.t = this.t + o + 1,
                                e.s = this.s,
                                e.clamp()
                        }
                        ,
                        e.prototype.rShiftTo = function (t, e) {
                            e.s = this.s;
                            var r = Math.floor(t / this.DB);
                            if (r >= this.t)
                                e.t = 0;
                            else {
                                var i = t % this.DB
                                    , n = this.DB - i
                                    , o = (1 << i) - 1;
                                e[0] = this[r] >> i;
                                for (var s = r + 1; s < this.t; ++s)
                                    e[s - r - 1] |= (this[s] & o) << n,
                                        e[s - r] = this[s] >> i;
                                0 < i && (e[this.t - r - 1] |= (this.s & o) << n),
                                    e.t = this.t - r,
                                    e.clamp()
                            }
                        }
                        ,
                        e.prototype.subTo = function (t, e) {
                            for (var r = 0, i = 0, n = Math.min(t.t, this.t); r < n;)
                                i += this[r] - t[r],
                                    e[r++] = i & this.DM,
                                    i >>= this.DB;
                            if (t.t < this.t) {
                                for (i -= t.s; r < this.t;)
                                    i += this[r],
                                        e[r++] = i & this.DM,
                                        i >>= this.DB;
                                i += this.s
                            } else {
                                for (i += this.s; r < t.t;)
                                    i -= t[r],
                                        e[r++] = i & this.DM,
                                        i >>= this.DB;
                                i -= t.s
                            }
                            e.s = i < 0 ? -1 : 0,
                                i < -1 ? e[r++] = this.DV + i : 0 < i && (e[r++] = i),
                                e.t = r,
                                e.clamp()
                        }
                        ,
                        e.prototype.multiplyTo = function (t, r) {
                            var i = this.abs()
                                , n = t.abs()
                                , o = i.t;
                            for (r.t = o + n.t; 0 <= --o;)
                                r[o] = 0;
                            for (o = 0; o < n.t; ++o)
                                r[o + i.t] = i.am(0, n[o], r, o, 0, i.t);
                            r.s = 0,
                                r.clamp(),
                            this.s != t.s && e.ZERO.subTo(r, r)
                        }
                        ,
                        e.prototype.squareTo = function (t) {
                            for (var e = this.abs(), r = t.t = 2 * e.t; 0 <= --r;)
                                t[r] = 0;
                            for (r = 0; r < e.t - 1; ++r) {
                                var i = e.am(r, e[r], t, 2 * r, 0, 1);
                                (t[r + e.t] += e.am(r + 1, 2 * e[r], t, 2 * r + 1, i, e.t - r - 1)) >= e.DV && (t[r + e.t] -= e.DV,
                                    t[r + e.t + 1] = 1)
                            }
                            0 < t.t && (t[t.t - 1] += e.am(r, e[r], t, 2 * r, 0, 1)),
                                t.s = 0,
                                t.clamp()
                        }
                        ,
                        e.prototype.divRemTo = function (t, i, n) {
                            var o = t.abs();
                            if (!(o.t <= 0)) {
                                if ((p = this.abs()).t < o.t)
                                    return null != i && i.fromInt(0),
                                        void (null != n && this.copyTo(n));
                                null == n && (n = r());
                                var s = r()
                                    , h = this.s
                                    , u = t.s;
                                0 < (t = this.DB - c(o[o.t - 1])) ? (o.lShiftTo(t, s),
                                    p.lShiftTo(t, n)) : (o.copyTo(s),
                                    p.copyTo(n));
                                var a = s.t
                                    , f = s[a - 1];
                                if (0 != f) {
                                    var p = f * (1 << this.F1) + (1 < a ? s[a - 2] >> this.F2 : 0)
                                        , l = this.FV / p
                                        , y = (1 << this.F1) / p
                                        , d = 1 << this.F2
                                        , m = n.t
                                        , v = m - a
                                        , g = null == i ? r() : i;
                                    for (s.dlShiftTo(v, g),
                                         0 <= n.compareTo(g) && (n[n.t++] = 1,
                                             n.subTo(g, n)),
                                             e.ONE.dlShiftTo(a, g),
                                             g.subTo(s, s); s.t < a;)
                                        s[s.t++] = 0;
                                    for (; 0 <= --v;) {
                                        var b = n[--m] == f ? this.DM : Math.floor(n[m] * l + (n[m - 1] + d) * y);
                                        if ((n[m] += s.am(0, b, n, v, 0, a)) < b)
                                            for (s.dlShiftTo(v, g),
                                                     n.subTo(g, n); n[m] < --b;)
                                                n.subTo(g, n)
                                    }
                                    null != i && (n.drShiftTo(a, i),
                                    h != u && e.ZERO.subTo(i, i)),
                                        n.t = a,
                                        n.clamp(),
                                    0 < t && n.rShiftTo(t, n),
                                    h < 0 && e.ZERO.subTo(n, n)
                                }
                            }
                        }
                        ,
                        e.prototype.invDigit = function () {
                            if (this.t < 1)
                                return 0;
                            var t = this[0];
                            if (0 == (1 & t))
                                return 0;
                            var e = 3 & t;
                            return 0 < (e = (e = (e = (e = e * (2 - (15 & t) * e) & 15) * (2 - (255 & t) * e) & 255) * (2 - ((65535 & t) * e & 65535)) & 65535) * (2 - t * e % this.DV) % this.DV) ? this.DV - e : -e
                        }
                        ,
                        e.prototype.isEven = function () {
                            return 0 == (0 < this.t ? 1 & this[0] : this.s)
                        }
                        ,
                        e.prototype.exp = function (t, i) {
                            if (4294967295 < t || t < 1)
                                return e.ONE;
                            var n, o = r(), s = r(), h = i.convert(this), u = c(t) - 1;
                            for (h.copyTo(o); 0 <= --u;)
                                i.sqrTo(o, s),
                                    0 < (t & 1 << u) ? i.mulTo(s, h, o) : (n = o,
                                        o = s,
                                        s = n);
                            return i.revert(o)
                        }
                        ,
                        e.prototype.toString = function (t) {
                            if (this.s < 0)
                                return "-" + this.negate().toString(t);
                            var e;
                            if (16 == t)
                                e = 4;
                            else if (8 == t)
                                e = 3;
                            else if (2 == t)
                                e = 1;
                            else if (32 == t)
                                e = 5;
                            else {
                                if (4 != t)
                                    return this.toRadix(t);
                                e = 2
                            }
                            var r, i = (1 << e) - 1, n = !1, o = "", s = this.t, u = this.DB - s * this.DB % e;
                            if (0 < s--)
                                for (u < this.DB && 0 < (r = this[s] >> u) && (n = !0,
                                    o = h(r)); 0 <= s;)
                                    u < e ? (r = (this[s] & (1 << u) - 1) << e - u,
                                        r |= this[--s] >> (u += this.DB - e)) : (r = this[s] >> (u -= e) & i,
                                    u <= 0 && (u += this.DB,
                                        --s)),
                                    (n = 0 < r || n) && (o += h(r));
                            return n ? o : "0"
                        }
                        ,
                        e.prototype.negate = function () {
                            var t = r();
                            return e.ZERO.subTo(this, t),
                                t
                        }
                        ,
                        e.prototype.abs = function () {
                            return this.s < 0 ? this.negate() : this
                        }
                        ,
                        e.prototype.compareTo = function (t) {
                            var e = this.s - t.s;
                            if (0 != e)
                                return e;
                            var r = this.t;
                            if (0 != (e = r - t.t))
                                return this.s < 0 ? -e : e;
                            for (; 0 <= --r;)
                                if (0 != (e = this[r] - t[r]))
                                    return e;
                            return 0
                        }
                        ,
                        e.prototype.bitLength = function () {
                            return this.t <= 0 ? 0 : this.DB * (this.t - 1) + c(this[this.t - 1] ^ this.s & this.DM)
                        }
                        ,
                        e.prototype.mod = function (t) {
                            var i = r();
                            return this.abs().divRemTo(t, null, i),
                            this.s < 0 && 0 < i.compareTo(e.ZERO) && t.subTo(i, i),
                                i
                        }
                        ,
                        e.prototype.modPowInt = function (t, e) {
                            return e = new (t < 256 || e.isEven() ? f : p)(e),
                                this.exp(t, e)
                        }
                        ,
                        e.ZERO = a(0),
                        e.ONE = a(1),
                        v.prototype.convert = g,
                        v.prototype.revert = g,
                        v.prototype.mulTo = function (t, e, r) {
                            t.multiplyTo(e, r)
                        }
                        ,
                        v.prototype.sqrTo = function (t, e) {
                            t.squareTo(e)
                        }
                        ,
                        b.prototype.convert = function (t) {
                            if (t.s < 0 || t.t > 2 * this.m.t)
                                return t.mod(this.m);
                            if (t.compareTo(this.m) < 0)
                                return t;
                            var e = r();
                            return t.copyTo(e),
                                this.reduce(e),
                                e
                        }
                        ,
                        b.prototype.revert = function (t) {
                            return t
                        }
                        ,
                        b.prototype.reduce = function (t) {
                            for (t.drShiftTo(this.m.t - 1, this.r2),
                                 t.t > this.m.t + 1 && (t.t = this.m.t + 1,
                                     t.clamp()),
                                     this.mu.multiplyUpperTo(this.r2, this.m.t + 1, this.q3),
                                     this.m.multiplyLowerTo(this.q3, this.m.t + 1, this.r2); t.compareTo(this.r2) < 0;)
                                t.dAddOffset(1, this.m.t + 1);
                            for (t.subTo(this.r2, t); 0 <= t.compareTo(this.m);)
                                t.subTo(this.m, t)
                        }
                        ,
                        b.prototype.mulTo = function (t, e, r) {
                            t.multiplyTo(e, r),
                                this.reduce(r)
                        }
                        ,
                        b.prototype.sqrTo = function (t, e) {
                            t.squareTo(e),
                                this.reduce(e)
                        }
                    ;
                    var T,
                        w = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997],
                        F = (1 << 26) / w[w.length - 1];

                    function S() {
                        var t;
                        t = (new Date).getTime(),
                            x[B++] ^= 255 & t,
                            x[B++] ^= t >> 8 & 255,
                            x[B++] ^= t >> 16 & 255,
                            x[B++] ^= t >> 24 & 255,
                        O <= B && (B -= O)
                    }

                    e.prototype.chunkSize = function (t) {
                        return Math.floor(Math.LN2 * this.DB / Math.log(t))
                    }
                        ,
                        e.prototype.toRadix = function (t) {
                            if (null == t && (t = 10),
                            0 == this.signum() || t < 2 || 36 < t)
                                return "0";
                            var e = this.chunkSize(t)
                                , i = Math.pow(t, e)
                                , n = a(i)
                                , o = r()
                                , s = r()
                                , h = "";
                            for (this.divRemTo(n, o, s); 0 < o.signum();)
                                h = (i + s.intValue()).toString(t).substr(1) + h,
                                    o.divRemTo(n, o, s);
                            return s.intValue().toString(t) + h
                        }
                        ,
                        e.prototype.fromRadix = function (t, r) {
                            this.fromInt(0);
                            for (var i = this.chunkSize(r = null == r ? 10 : r), n = Math.pow(r, i), o = !1, s = 0, h = 0, a = 0; a < t.length; ++a) {
                                var c = u(t, a);
                                c < 0 ? "-" == t.charAt(a) && 0 == this.signum() && (o = !0) : (h = r * h + c,
                                ++s >= i && (this.dMultiply(n),
                                    this.dAddOffset(h, 0),
                                    h = s = 0))
                            }
                            0 < s && (this.dMultiply(Math.pow(r, s)),
                                this.dAddOffset(h, 0)),
                            o && e.ZERO.subTo(this, this)
                        }
                        ,
                        e.prototype.fromNumber = function (t, r, i) {
                            if ("number" == typeof r)
                                if (t < 2)
                                    this.fromInt(1);
                                else
                                    for (this.fromNumber(t, i),
                                         this.testBit(t - 1) || this.bitwiseTo(e.ONE.shiftLeft(t - 1), y, this),
                                         this.isEven() && this.dAddOffset(1, 0); !this.isProbablePrime(r);)
                                        this.dAddOffset(2, 0),
                                        this.bitLength() > t && this.subTo(e.ONE.shiftLeft(t - 1), this);
                            else {
                                var n = new Array;
                                i = 7 & t,
                                    n.length = 1 + (t >> 3),
                                    r.nextBytes(n),
                                    0 < i ? n[0] &= (1 << i) - 1 : n[0] = 0,
                                    this.fromString(n, 256)
                            }
                        }
                        ,
                        e.prototype.bitwiseTo = function (t, e, r) {
                            for (var i, n = Math.min(t.t, this.t), o = 0; o < n; ++o)
                                r[o] = e(this[o], t[o]);
                            if (t.t < this.t) {
                                for (i = t.s & this.DM,
                                         o = n; o < this.t; ++o)
                                    r[o] = e(this[o], i);
                                r.t = this.t
                            } else {
                                for (i = this.s & this.DM,
                                         o = n; o < t.t; ++o)
                                    r[o] = e(i, t[o]);
                                r.t = t.t
                            }
                            r.s = e(this.s, t.s),
                                r.clamp()
                        }
                        ,
                        e.prototype.changeBit = function (t, r) {
                            return t = e.ONE.shiftLeft(t),
                                this.bitwiseTo(t, r, t),
                                t
                        }
                        ,
                        e.prototype.addTo = function (t, e) {
                            for (var r = 0, i = 0, n = Math.min(t.t, this.t); r < n;)
                                i += this[r] + t[r],
                                    e[r++] = i & this.DM,
                                    i >>= this.DB;
                            if (t.t < this.t) {
                                for (i += t.s; r < this.t;)
                                    i += this[r],
                                        e[r++] = i & this.DM,
                                        i >>= this.DB;
                                i += this.s
                            } else {
                                for (i += this.s; r < t.t;)
                                    i += t[r],
                                        e[r++] = i & this.DM,
                                        i >>= this.DB;
                                i += t.s
                            }
                            e.s = i < 0 ? -1 : 0,
                                0 < i ? e[r++] = i : i < -1 && (e[r++] = this.DV + i),
                                e.t = r,
                                e.clamp()
                        }
                        ,
                        e.prototype.dMultiply = function (t) {
                            this[this.t] = this.am(0, t - 1, this, 0, 0, this.t),
                                ++this.t,
                                this.clamp()
                        }
                        ,
                        e.prototype.dAddOffset = function (t, e) {
                            if (0 != t) {
                                for (; this.t <= e;)
                                    this[this.t++] = 0;
                                for (this[e] += t; this[e] >= this.DV;)
                                    this[e] -= this.DV,
                                    ++e >= this.t && (this[this.t++] = 0),
                                        ++this[e]
                            }
                        }
                        ,
                        e.prototype.multiplyLowerTo = function (t, e, r) {
                            var i, n = Math.min(this.t + t.t, e);
                            for (r.s = 0,
                                     r.t = n; 0 < n;)
                                r[--n] = 0;
                            for (i = r.t - this.t; n < i; ++n)
                                r[n + this.t] = this.am(0, t[n], r, n, 0, this.t);
                            for (i = Math.min(t.t, e); n < i; ++n)
                                this.am(0, t[n], r, n, 0, e - n);
                            r.clamp()
                        }
                        ,
                        e.prototype.multiplyUpperTo = function (t, e, r) {
                            var i = r.t = this.t + t.t - --e;
                            for (r.s = 0; 0 <= --i;)
                                r[i] = 0;
                            for (i = Math.max(e - this.t, 0); i < t.t; ++i)
                                r[this.t + i - e] = this.am(e - i, t[i], r, 0, 0, this.t + i - e);
                            r.clamp(),
                                r.drShiftTo(1, r)
                        }
                        ,
                        e.prototype.modInt = function (t) {
                            if (t <= 0)
                                return 0;
                            var e = this.DV % t
                                , r = this.s < 0 ? t - 1 : 0;
                            if (0 < this.t)
                                if (0 == e)
                                    r = this[0] % t;
                                else
                                    for (var i = this.t - 1; 0 <= i; --i)
                                        r = (e * r + this[i]) % t;
                            return r
                        }
                        ,
                        e.prototype.millerRabin = function (t) {
                            var i = this.subtract(e.ONE)
                                , n = i.getLowestSetBit();
                            if (n <= 0)
                                return !1;
                            var o = i.shiftRight(n);
                            w.length < (t = t + 1 >> 1) && (t = w.length);
                            for (var s = r(), h = 0; h < t; ++h) {
                                s.fromInt(w[Math.floor(Math.random() * w.length)]);
                                var u = s.modPow(o, this);
                                if (0 != u.compareTo(e.ONE) && 0 != u.compareTo(i)) {
                                    for (var a = 1; a++ < n && 0 != u.compareTo(i);)
                                        if (0 == (u = u.modPowInt(2, this)).compareTo(e.ONE))
                                            return !1;
                                    if (0 != u.compareTo(i))
                                        return !1
                                }
                            }
                            return !0
                        }
                        ,
                        e.prototype.clone = function () {
                            var t = r();
                            return this.copyTo(t),
                                t
                        }
                        ,
                        e.prototype.intValue = function () {
                            if (this.s < 0) {
                                if (1 == this.t)
                                    return this[0] - this.DV;
                                if (0 == this.t)
                                    return -1
                            } else {
                                if (1 == this.t)
                                    return this[0];
                                if (0 == this.t)
                                    return 0
                            }
                            return (this[1] & (1 << 32 - this.DB) - 1) << this.DB | this[0]
                        }
                        ,
                        e.prototype.byteValue = function () {
                            return 0 == this.t ? this.s : this[0] << 24 >> 24
                        }
                        ,
                        e.prototype.shortValue = function () {
                            return 0 == this.t ? this.s : this[0] << 16 >> 16
                        }
                        ,
                        e.prototype.signum = function () {
                            return this.s < 0 ? -1 : this.t <= 0 || 1 == this.t && this[0] <= 0 ? 0 : 1
                        }
                        ,
                        e.prototype.toByteArray = function () {
                            var t = this.t
                                , e = new Array;
                            e[0] = this.s;
                            var r, i = this.DB - t * this.DB % 8, n = 0;
                            if (0 < t--)
                                for (i < this.DB && (r = this[t] >> i) != (this.s & this.DM) >> i && (e[n++] = r | this.s << this.DB - i); 0 <= t;)
                                    i < 8 ? (r = (this[t] & (1 << i) - 1) << 8 - i,
                                        r |= this[--t] >> (i += this.DB - 8)) : (r = this[t] >> (i -= 8) & 255,
                                    i <= 0 && (i += this.DB,
                                        --t)),
                                    0 != (128 & r) && (r |= -256),
                                    0 == n && (128 & this.s) != (128 & r) && ++n,
                                    (0 < n || r != this.s) && (e[n++] = r);
                            return e
                        }
                        ,
                        e.prototype.equals = function (t) {
                            return 0 == this.compareTo(t)
                        }
                        ,
                        e.prototype.min = function (t) {
                            return this.compareTo(t) < 0 ? this : t
                        }
                        ,
                        e.prototype.max = function (t) {
                            return 0 < this.compareTo(t) ? this : t
                        }
                        ,
                        e.prototype.and = function (t) {
                            var e = r();
                            return this.bitwiseTo(t, l, e),
                                e
                        }
                        ,
                        e.prototype.or = function (t) {
                            var e = r();
                            return this.bitwiseTo(t, y, e),
                                e
                        }
                        ,
                        e.prototype.xor = function (t) {
                            var e = r();
                            return this.bitwiseTo(t, d, e),
                                e
                        }
                        ,
                        e.prototype.andNot = function (t) {
                            var e = r();
                            return this.bitwiseTo(t, m, e),
                                e
                        }
                        ,
                        e.prototype.not = function () {
                            for (var t = r(), e = 0; e < this.t; ++e)
                                t[e] = this.DM & ~this[e];
                            return t.t = this.t,
                                t.s = ~this.s,
                                t
                        }
                        ,
                        e.prototype.shiftLeft = function (t) {
                            var e = r();
                            return t < 0 ? this.rShiftTo(-t, e) : this.lShiftTo(t, e),
                                e
                        }
                        ,
                        e.prototype.shiftRight = function (t) {
                            var e = r();
                            return t < 0 ? this.lShiftTo(-t, e) : this.rShiftTo(t, e),
                                e
                        }
                        ,
                        e.prototype.getLowestSetBit = function () {
                            for (var t = 0; t < this.t; ++t)
                                if (0 != this[t])
                                    return t * this.DB + function (t) {
                                        if (0 == t)
                                            return -1;
                                        var e = 0;
                                        return 0 == (65535 & t) && (t >>= 16,
                                            e += 16),
                                        0 == (255 & t) && (t >>= 8,
                                            e += 8),
                                        0 == (15 & t) && (t >>= 4,
                                            e += 4),
                                        0 == (3 & t) && (t >>= 2,
                                            e += 2),
                                        0 == (1 & t) && ++e,
                                            e
                                    }(this[t]);
                            return this.s < 0 ? this.t * this.DB : -1
                        }
                        ,
                        e.prototype.bitCount = function () {
                            for (var t = 0, e = this.s & this.DM, r = 0; r < this.t; ++r)
                                t += function (t) {
                                    for (var e = 0; 0 != t;)
                                        t &= t - 1,
                                            ++e;
                                    return e
                                }(this[r] ^ e);
                            return t
                        }
                        ,
                        e.prototype.testBit = function (t) {
                            var e = Math.floor(t / this.DB);
                            return e >= this.t ? 0 != this.s : 0 != (this[e] & 1 << t % this.DB)
                        }
                        ,
                        e.prototype.setBit = function (t) {
                            return this.changeBit(t, y)
                        }
                        ,
                        e.prototype.clearBit = function (t) {
                            return this.changeBit(t, m)
                        }
                        ,
                        e.prototype.flipBit = function (t) {
                            return this.changeBit(t, d)
                        }
                        ,
                        e.prototype.add = function (t) {
                            var e = r();
                            return this.addTo(t, e),
                                e
                        }
                        ,
                        e.prototype.subtract = function (t) {
                            var e = r();
                            return this.subTo(t, e),
                                e
                        }
                        ,
                        e.prototype.multiply = function (t) {
                            var e = r();
                            return this.multiplyTo(t, e),
                                e
                        }
                        ,
                        e.prototype.divide = function (t) {
                            var e = r();
                            return this.divRemTo(t, e, null),
                                e
                        }
                        ,
                        e.prototype.remainder = function (t) {
                            var e = r();
                            return this.divRemTo(t, null, e),
                                e
                        }
                        ,
                        e.prototype.divideAndRemainder = function (t) {
                            var e = r()
                                , i = r();
                            return this.divRemTo(t, e, i),
                                new Array(e, i)
                        }
                        ,
                        e.prototype.modPow = function (t, e) {
                            var i = t.bitLength()
                                , n = a(1);
                            if (i <= 0)
                                return n;
                            var o = i < 18 ? 1 : i < 48 ? 3 : i < 144 ? 4 : i < 768 ? 5 : 6
                                , s = new (i < 8 ? f : e.isEven() ? b : p)(e)
                                , h = new Array
                                , u = 3
                                , l = o - 1
                                , y = (1 << o) - 1;
                            if (h[1] = s.convert(this),
                            1 < o) {
                                var d = r();
                                for (s.sqrTo(h[1], d); u <= y;)
                                    h[u] = r(),
                                        s.mulTo(d, h[u - 2], h[u]),
                                        u += 2
                            }
                            var m, v, g = t.t - 1, T = !0, w = r();
                            for (i = c(t[g]) - 1; 0 <= g;) {
                                for (l <= i ? m = t[g] >> i - l & y : (m = (t[g] & (1 << i + 1) - 1) << l - i,
                                0 < g && (m |= t[g - 1] >> this.DB + i - l)),
                                         u = o; 0 == (1 & m);)
                                    m >>= 1,
                                        --u;
                                if ((i -= u) < 0 && (i += this.DB,
                                    --g),
                                    T)
                                    h[m].copyTo(n),
                                        T = !1;
                                else {
                                    for (; 1 < u;)
                                        s.sqrTo(n, w),
                                            s.sqrTo(w, n),
                                            u -= 2;
                                    0 < u ? s.sqrTo(n, w) : (v = n,
                                        n = w,
                                        w = v),
                                        s.mulTo(w, h[m], n)
                                }
                                for (; 0 <= g && 0 == (t[g] & 1 << i);)
                                    s.sqrTo(n, w),
                                        v = n,
                                        n = w,
                                        w = v,
                                    --i < 0 && (i = this.DB - 1,
                                        --g)
                            }
                            return s.revert(n)
                        }
                        ,
                        e.prototype.modInverse = function (t) {
                            var r = t.isEven();
                            if (this.isEven() && r || 0 == t.signum())
                                return e.ZERO;
                            for (var i = t.clone(), n = this.clone(), o = a(1), s = a(0), h = a(0), u = a(1); 0 != i.signum();) {
                                for (; i.isEven();)
                                    i.rShiftTo(1, i),
                                        r ? (o.isEven() && s.isEven() || (o.addTo(this, o),
                                            s.subTo(t, s)),
                                            o.rShiftTo(1, o)) : s.isEven() || s.subTo(t, s),
                                        s.rShiftTo(1, s);
                                for (; n.isEven();)
                                    n.rShiftTo(1, n),
                                        r ? (h.isEven() && u.isEven() || (h.addTo(this, h),
                                            u.subTo(t, u)),
                                            h.rShiftTo(1, h)) : u.isEven() || u.subTo(t, u),
                                        u.rShiftTo(1, u);
                                0 <= i.compareTo(n) ? (i.subTo(n, i),
                                r && o.subTo(h, o),
                                    s.subTo(u, s)) : (n.subTo(i, n),
                                r && h.subTo(o, h),
                                    u.subTo(s, u))
                            }
                            return 0 != n.compareTo(e.ONE) ? e.ZERO : 0 <= u.compareTo(t) ? u.subtract(t) : u.signum() < 0 ? (u.addTo(t, u),
                                u.signum() < 0 ? u.add(t) : u) : u
                        }
                        ,
                        e.prototype.pow = function (t) {
                            return this.exp(t, new v)
                        }
                        ,
                        e.prototype.gcd = function (t) {
                            var e = this.s < 0 ? this.negate() : this.clone()
                                , r = t.s < 0 ? t.negate() : t.clone();
                            e.compareTo(r) < 0 && (n = e,
                                e = r,
                                r = n);
                            var i = e.getLowestSetBit()
                                , n = r.getLowestSetBit();
                            if (n < 0)
                                return e;
                            for (0 < (n = i < n ? i : n) && (e.rShiftTo(n, e),
                                r.rShiftTo(n, r)); 0 < e.signum();)
                                0 < (i = e.getLowestSetBit()) && e.rShiftTo(i, e),
                                0 < (i = r.getLowestSetBit()) && r.rShiftTo(i, r),
                                    0 <= e.compareTo(r) ? (e.subTo(r, e),
                                        e.rShiftTo(1, e)) : (r.subTo(e, r),
                                        r.rShiftTo(1, r));
                            return 0 < n && r.lShiftTo(n, r),
                                r
                        }
                        ,
                        e.prototype.isProbablePrime = function (t) {
                            var e, r = this.abs();
                            if (1 == r.t && r[0] <= w[w.length - 1]) {
                                for (e = 0; e < w.length; ++e)
                                    if (r[0] == w[e])
                                        return !0;
                                return !1
                            }
                            if (r.isEven())
                                return !1;
                            for (e = 1; e < w.length;) {
                                for (var i = w[e], n = e + 1; n < w.length && i < F;)
                                    i *= w[n++];
                                for (i = r.modInt(i); e < n;)
                                    if (i % w[e++] == 0)
                                        return !1
                            }
                            return r.millerRabin(t)
                        }
                        ,
                        e.prototype.square = function () {
                            var t = r();
                            return this.squareTo(t),
                                t
                        }
                        ,
                        e.prototype.Barrett = b;
                    var x = new Array
                        , B = 0;
                    if ("undefined" != typeof window && window.crypto)
                        if (window.crypto.getRandomValues) {
                            var D = new Uint8Array(32);
                            for (window.crypto.getRandomValues(D),
                                     A = 0; A < 32; ++A)
                                x[B++] = D[A]
                        } else if ("Netscape" == navigator.appName && navigator.appVersion < "5")
                            for (var E = window.crypto.random(32), A = 0; A < E.length; ++A)
                                x[B++] = 255 & E.charCodeAt(A);
                    for (; B < O;)
                        A = Math.floor(65536 * Math.random()),
                            x[B++] = A >>> 8,
                            x[B++] = 255 & A;

                    function I() {
                        if (null == T) {
                            for (S(),
                                     (T = new R).init(x),
                                     B = 0; B < x.length; ++B)
                                x[B] = 0;
                            B = 0
                        }
                        return T.next()
                    }

                    function q() {
                    }

                    function R() {
                        this.i = 0,
                            this.j = 0,
                            this.S = new Array
                    }

                    B = 0,
                        S(),
                        q.prototype.nextBytes = function (t) {
                            for (var e = 0; e < t.length; ++e)
                                t[e] = I()
                        }
                        ,
                        R.prototype.init = function (t) {
                            for (var e, r, i = 0; i < 256; ++i)
                                this.S[i] = i;
                            for (i = e = 0; i < 256; ++i)
                                e = e + this.S[i] + t[i % t.length] & 255,
                                    r = this.S[i],
                                    this.S[i] = this.S[e],
                                    this.S[e] = r;
                            this.i = 0,
                                this.j = 0
                        }
                        ,
                        R.prototype.next = function () {
                            var t;
                            return this.i = this.i + 1 & 255,
                                this.j = this.j + this.S[this.i] & 255,
                                t = this.S[this.i],
                                this.S[this.i] = this.S[this.j],
                                this.S[this.j] = t,
                                this.S[t + this.S[this.i] & 255]
                        }
                    ;
                    var O = 256;
                    t.exports = {
                        default: e,
                        BigInteger: e,
                        SecureRandom: q
                    }
                }
            ).call(this)
        }

    },
)
// sm加密系列
// console.log(fucker('686'))
function a() {
    this.handshakePublicKey = "",
        this.handshakeUrl = "",
        this._keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
        this.publicKeyHeader = "",
        this.sm2Key = "",
        this.sm4Key = "",
        this.iv = "",
        this.randomKey = "",
        this.sm2EncryptData = "",
        this.sm4EncryptData = "",
        this.encryptStorageSm4Key = "6c3d6878252e641b",
        this.encryptStorageIv = "5f5e5a247f544d771255134517043757",
        this.encryptRandomKey = "",
        this.encryptSm2RandomKey = "";
    var t = !1
        , e = !1;
    "undefined" != typeof wx && wx.request && wx.login ? t = !0 : "undefined" != typeof jd && jd.request && jd.login ? e = t = !0 : t = !1,
        this.isJd = e,
        t = (this.isApplet = t) ? 2 : 1,
        this.isResponse = !1,
        this.version = [1],
        this.client_type = [t],
        this.key_cipher = [],
        this.time = null,
        this.ms = 6e4,
        this._localStorage = ""
}

a.prototype = {
    commonPromise: function (e, r) {
        var i = this
            , n = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : 1
            , o = (r = this.isJd ? encodeURIComponent(r) : r,
            1 !== n ? {
                data: r
            } : {
                clientKey: r
            });
        return new t((function (t, r) {
                var n = {
                    url: e,
                    method: "POST",
                    data: o,
                    success: function (e) {
                        var i = e.statusCode;
                        200 <= i && i < 300 || 304 === i ? t(e.data) : r(i)
                    },
                    fail: function (t) {
                        r(t)
                    }
                };
                i.isApplet || (n = {
                    type: "POST",
                    url: e,
                    data: o,
                    success: function (e) {
                        t(e)
                    },
                    error: function (t) {
                        r(t)
                    }
                }),
                    s(n)
            }
        ))
    },
    encryptDecryptRequest: function (t, e) {
        return this.commonPromise(t, e)
    },
    createDemote: function () {
        this.isResponse || this.demoteKeyCipher()
    },
    demoteKeyCipher: function () {
        var t = [140, 58, 51, 17, 108, 219, 141, 107, 65, 13, 222, 250, 147, 190, 156, 25];
        this.isApplet && (t = [68, 176, 150, 193, 133, 248, 213, 81, 190, 140, 15, 58, 167, 248, 31, 97]);
        var r = this.createRandomKey(8);
        this.randomKey = r;
        var i = this.createRandomKey();
        t = fucker('686').sm4.encrypt(r, t, {
            mode: "cbc",
            iv: i
        }),
            this.encryptRandomKey = t,
            t = this.hexToArray(t),
            t = this.hexToArray(i).concat(t, [0, 0, 0, 0, 0]),
            this.key_cipher = t
    },
    handshake: function (t, e) {
        this.isResponse || this.key_cipher.length && Date.now() < this.lastClick + this.ms || (this.handshakeUrl || (this.handshakeUrl = t,
            this.handshakePublicKey = e),
            this.createDemote(),
            this.sm2EncryptRandomKey(t, e))
    },
    encryptRequest: function (t, e) {
        var r = this;
        this.encryptDecryptRequest(t, e).then((function (t) {
                t ? (t = r.decode(t),
                    t = Array.prototype.slice.call(t),
                    r.key_cipher = t,
                    r.isResponse = !0) : (r.isResponse = !1,
                    r.lastClick = Date.now())
            }
        )).catch((function (t) {
                r.isResponse = !1,
                    r.lastClick = Date.now()
            }
        ))
    },
    sm2EncryptRandomKey: function (t, r) {
        var i = e.sm2.doEncrypt(this.randomKey, r)
            , n = this.hexToArray(this.createRandomKey(1))
            , o = this.version;
        r = this.client_type,
            i = this.hexToArray(i),
            i = n.concat(o, r, i),
            i = new Uint8Array(i),
            i = this.arrayBufferToBase64(i),
            this.encryptRequest(t, i)
    },
    createRandomKey: function () {
        var t = this.randomUnit8Array(1, 127, 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : 16);
        return this.buffertoHex(t)
    },
    encrypt: function (t) {
        if (!t)
            throw new Error("encrypt data can not empty");
        this.createDemote();
        var r, i = {
                mode: "cbc",
                iv: r = this.createRandomKey()
            }, n = this.utf8ToHex(this.randomKey), o = fucker('686').encrypt(t, n, i), s = this.hexToArray(o),
            h = this.hexToArray(this.createRandomKey(1)), u = this.version, a = this.client_type;
        return t = this.isResponse ? [0] : [1],
            n = this.key_cipher,
            i = this.hexToArray(r),
            o = s,
            (r = new Uint32Array(1))[0] = s.length,
            r = Array.prototype.slice.call(new Uint8Array(r.buffer)),
            o = h.concat(u, a, t, n, i, r, o),
            o = new Uint8Array(o),
            o = this.arrayBufferToBase64(o),
        !this.isResponse && this.handshakeUrl && this.handshake(this.handshakeUrl, this.handshakePublicKey),
            o
    },
    encryptData: function (t, e) {
        if (!e)
            throw new Error("encrypt data can not empty");
        var r = (i = this.decode(t)).byteLength
            , i = (t = i.subarray(0, r - 65),
            i.subarray(r - 65));
        return r = this.buffertoHex(t),
            t = this.buffertoHex(i),
            i = this.encryptStorageSm4Data(),
            this.publicKeyHeader = r,
            this.sm2Key = t,
            this.sm4Key = i,
            this.iv = this.createRandomKey(),
            this.encryptSm2Data(),
            this.encryptSm4Data(e),
            this.getEncryptData()
    },
    testDecrpt: function (t, e) {
        return this.commonPromise(t, e, 2)
    },
    test: function (e, r) {
        return this.testDecrpt(e, r).then((function (e) {
                return t.resolve(e)
            }
        )).catch((function (e) {
                return t.reject(e)
            }
        ))
    },
    randomUnit8Array: function (t, e, r) {
        e += 1;
        for (var i = [], n = void 0 === r ? 1 : r, o = 0; o < n; o++) {
            var s = Math.floor(Math.random() * (e - t) + t);
            i.push(s)
        }
        return new Uint8Array(i)
    },
    buffertoHex: function (t) {
        return Array.prototype.map.call(t, (function (t) {
                return ("00" + t.toString(16)).slice(-2)
            }
        )).join("")
    },
    encryptSm2Data: function () {
        var t = this.sm4Key
            , r = this.sm2Key;
        r = fucker('686').sm2.doEncrypt(t, r),
            this.sm2EncryptData = r
    },
    encryptSm4Data: function (t) {
        var r = this.sm4Key
            , i = {
            mode: "cbc",
            iv: this.iv
        };
        r = this.utf8ToHex(r),
            i = fucker('686').sm4.encrypt(t, r, i),
            this.sm4EncryptData = i
    },
    encryptStorageSm4Data: function () {
        var t = this.encryptStorageSm4Key
            , r = {
            mode: "cbc",
            iv: this.encryptStorageIv
        }
            , i = this.utf8ToHex(t)
            , n = ""
            , o = this.isApplet
            , s = this.isJd;
        if (t = o ? s ? jd : wx : null,
            o)
            n = t.getStorageSync("aksKey");
        else
            try {
                n = localStorage.getItem("aksKey")
            } catch (t) {
                n = this._localStorage
            }
        if (s = "",
            n)
            s = e.sm4.decrypt(n, i, r);
        else if (n = this.randomUnit8Array(1, 127, 8),
            s = this.buffertoHex(n),
            r = fucker('686').sm4.encrypt(s, i, r),
            o)
            t.setStorageSync("aksKey", r);
        else
            try {
                localStorage.setItem("aksKey", r)
            } catch (t) {
                this._localStorage = r
            }
        return s
    },
    utf8ToHex: function (t) {
        for (var e = (t = unescape(encodeURIComponent(t))).length, r = [], i = 0; i < e; i++)
            r[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - i % 4 * 8;
        for (var n = [], o = 0; o < e; o++) {
            var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255;
            n.push((s >>> 4).toString(16)),
                n.push((15 & s).toString(16))
        }
        return n.join("")
    },
    hex2b64: function (t) {
        for (var e, r = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", i = "", n = 0; n + 3 <= t.length; n += 3)
            e = parseInt(t.substring(n, n + 3), 16),
                i += r.charAt(e >> 6) + r.charAt(63 & e);
        for (n + 1 == t.length ? (e = parseInt(t.substring(n, n + 1), 16),
            i += r.charAt(e << 2)) : n + 2 == t.length && (e = parseInt(t.substring(n, n + 2), 16),
            i += r.charAt(e >> 2) + r.charAt((3 & e) << 4)); 0 < (3 & i.length);)
            i += "=";
        return i
    },
    leftPad: function (t, e) {
        return t.length >= e ? t : new Array(e - t.length + 1).join("0") + t
    },
    hexToArray: function (t) {
        for (var e = [], r = (t = (r = t.length) % 2 != 0 ? this.leftPad(t, r + 1) : t).length, i = 0; i < r; i += 2)
            e.push(parseInt(t.substr(i, 2), 16));
        return e
    },
    getEncryptData: function () {
        var t = this.hexToArray(this.publicKeyHeader)
            , e = this.hexToArray(this.sm2EncryptData)
            , r = this.hexToArray(this.sm4EncryptData)
            , i = this.hexToArray(this.iv);
        return r = t.concat(e, i, r),
            r = new Uint8Array(r),
            this.arrayBufferToBase64(r)
    },
    removePaddingChars: function (t) {
        return 64 == this._keyStr.indexOf(t.charAt(t.length - 1)) ? t.substring(0, t.length - 1) : t
    },
    arrayBufferToBase64: function (t) {
        for (var e = t.byteLength, r = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "+", "/"], i = "", n = 0; 3 <= e - n; n += 3) {
            var o = t[n]
                , s = t[n + 1]
                , h = t[n + 2];
            i += r[o >>> 2] + r[(3 & o) << 4 | s >>> 4] + r[(15 & s) << 2 | h >>> 6] + r[63 & h]
        }
        var u, a = e - n;
        return 1 == a ? i += r[(u = t[n]) >>> 2] + r[(3 & u) << 4] + "==" : 2 == a && (u = t[n],
            a = t[n + 1],
            i += r[u >>> 2] + r[(3 & u) << 4 | a >>> 4] + r[(15 & a) << 2] + "="),
            i
    },
    decode: function (t, e) {
        var r = t;
        e = e,
            r = this.removePaddingChars(r),
            r = this.removePaddingChars(r);
        var i, n, o, s, h, u, a = parseInt(r.length / 4 * 3, 10), c = 0, f = 0,
            p = e ? new Uint8Array(e) : new Uint8Array(a);
        for (r = r.replace(/[^A-Za-z0-9\+\/\=]/g, ""),
                 c = 0; c < a; c += 3)
            o = this._keyStr.indexOf(r.charAt(f++)),
                i = (15 & (s = this._keyStr.indexOf(r.charAt(f++)))) << 4 | (h = this._keyStr.indexOf(r.charAt(f++))) >> 2,
                n = (3 & h) << 6 | (u = this._keyStr.indexOf(r.charAt(f++))),
                p[c] = o << 2 | s >> 4,
            64 != h && (p[c + 1] = i),
            64 != u && (p[c + 2] = n);
        return p
    },
    decryptData: function (t) {
        var r = (o = this.decode(t)).byteLength
            , i = o.subarray(3, 19)
            , n = o.subarray(19, r)
            , o = (t = this.buffertoHex(i),
            this.buffertoHex(n));
        if (r = this.isApplet,
            i = "",
            n = this.isJd,
            n = r ? n ? jd : wx : null,
            r)
            try {
                if (!(i = n.getStorageSync("aksKey")))
                    throw new Error("get storage fail")
            } catch (t) {
                throw new Error("get storage fail")
            }
        else
            try {
                i = localStorage.getItem("aksKey")
            } catch (t) {
                i = this._localStorage
            }
        if (n = "",
            !i)
            throw new Error("key is invalid");
        return n = this.encryptStorageSm4Data(),
            n = this.utf8ToHex(n),
            e.sm4.decrypt(o, n, {
                mode: "cbc",
                iv: t
            })
    }
};
obj = new a


function SummerCryptico_encryptData(t, e) {
    var r = (i = obj.decode(t)).byteLength
        , i = (t = i.subarray(0, r - 65),
        i.subarray(r - 65));
    return r = obj.buffertoHex(t),
        t = obj.buffertoHex(i),
        i = obj.encryptStorageSm4Data(),
        obj.publicKeyHeader = r,
        obj.sm2Key = t,
        obj.sm4Key = i,
        obj.iv = obj.createRandomKey(),
        obj.encryptSm2Data(),
        obj.encryptSm4Data(e),
        obj.getEncryptData()
}

function generateAksParams(originParams) {
    // const publicKey = getPublickKeysync()
    const publicKey = "ARMAclJ6MDAxBMZULdQ8kSzNrFhRJncK0CqKQ9wnC3kSk9UTSdCYlAhsnnIYbab2dMsW+3DOkp8r7C40msi+jTF3jPhZNq/5L54="
    return encodeURIComponent(SummerCryptico_encryptData(publicKey, originParams + ""));
}


function getPublickKeyAsync() {

    axios.get('https://passport.jd.com/publicKey/init')
        .then(function (response) {
            // 请求成功，处理返回的数据
            console.log('公钥: ', response.data);
        })
        .catch(function (error) {
            // 请求失败，处理错误信息
            console.log(error);
        });
}

function getPublickKeysync() {
    const syncRequest = require('sync-request');
    const response = syncRequest('GET', 'https://passport.jd.com/publicKey/init', {
        headers: {
            'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
        }
    });

    const res = JSON.parse(
        response.getBody().toString()
    )
    // console.log('interface: ', res['data'])
    return res['success'] ? res['data'] : 'ARMAclJ6MDAxBMZULdQ8kSzNrFhRJncK0CqKQ9wnC3kSk9UTSdCYlAhsnnIYbab2dMsW+3DOkp8r7C40msi+jTF3jPhZNq/5L54=';

}

function myRsa(publicKey, nloginpwd) {
    var c = new JSEncrypt;
    c.setPublicKey(publicKey);
    return c.encrypt(nloginpwd)

}


